<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@include file="/pages/jyy/jsandcss.jsp" %>
<%@ page import="java.util.Date,java.text.SimpleDateFormat" %>
<%
SimpleDateFormat df=new SimpleDateFormat("yyyyMMddHHmmss");
String s=df.format(new Date());
%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加排产单</title>
<style type="text/css">
.table_list_box{
   table-layout:fixed !important;
}
</style>
<script type="text/javascript">
$(function () {

    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

    //2.初始化Button的点击事件
    var oButtonInit = new ButtonInit();
    oButtonInit.Init();
    
    //时间控件
    $(".form_datetime").datetimepicker({
	 format: "yyyy-mm-dd",
	 autoclose: true,
	 todayBtn: true,
	 todayHighlight: true,
	 showMeridian: true,
	 pickerPosition: "bottom-left",
	 language: 'zh-CN',//中文，需要引用zh-CN.js包
	 startView: 2,//月视图
	 minView: 2//日期时间选择器所能够提供的最精确的时间选择视图
	 });
    
  //查询车间信息
    $.ajax({
        url:'${pageContext.request.contextPath }/jy/selectCarroom.do',
        type:"POST",
        dataType:'json',
        success:function (result) {
            for (var i = 0; i < result.length; i++) {
                $("#carroom").append("<option value="+result[i].id+">"+result[i].name+"</option>");
            }
        }
    });

    //返回生产排产列表页
    $("#returnBtn").click(function(){
        window.location.href="${pageContext.request.contextPath }/jy/goDayshedu.do?remark3="+$("#pdids").val();
    });
    
    //获取选中的所有计划单详情
    $("#submitBtn").click(function(){
    	var arr= $('#tb_departments1').bootstrapTable('getSelections'); 
    	$("#plan").val(arr[0].plannum);
    	var a= $('#tb_departments2').bootstrapTable('getSelections');  
        var ids = "";
        for(var i = 0;i<a.length;i++) {
	       	 if(i != a.length-1) {
	       	 	ids +=a[i].id+",";
	       	 }else {
	       	 	ids +=a[i].id;
	       	 }
        }
        $("#pdids").val(ids); 
        $('#tb_departments').bootstrapTable(  
                "refresh",  
                {  
              	  url:'${pageContext.request.contextPath }/jy/selectPlanDetailByids.do?ids='+ids
                }  
       	 ); 
        $('#tb_departments').bootstrapTable(  
                "refresh",  
                {  
              	  url:'${pageContext.request.contextPath }/jy/selectPlanDetailByids.do?ids='+ids
                }  
       	 ); 
    });
    
    
    //新增生产排产单
    $("#submitBtn1").click(function(){
    	//获取对应计划单详情ids
    	var remark3=$("#pdids").val();
    	//获取排产单号
    	var dayshedunum=$("#pc").val();
    	//获取车间
    	var carroom=$("#carroom").val();
    	//获取设备
    	var equipment=$("#equipment").val();
    	//获取班组
    	var clazz=$("#clazz").val();
    	//获取时间
    	var datatime=$("#datatime").val();
    	//获取当前选中的生产计划单号
    	var plannum=$("#plan").val();
    	 if(carroom == "" || carroom == null  || carroom == undefined) {
    		 toastr.warning("请选择车间");  
    		 return;
    	 }
    	 if(equipment == "" || equipment == null  || equipment == undefined) {
    		 toastr.warning("请选择设备");  
    		 return;
    	 }
    	 if(clazz == "" || clazz == null  || clazz == undefined) {
    		 toastr.warning("请选择班组");  
    		 return;
    	 }
    	 if(datatime == "" || datatime == null  || datatime == undefined) {
    		 toastr.warning("请选择时间");  
    		 return;
    	 }
    	 if(plannum == "" || plannum == null  || plannum == undefined) {
    		 toastr.warning("请选择生产计划单");  
    		 return;
    	 }
    	 
    	 
    	//先判断详情有没有添加，如果没有（提示）
    	 $.ajax({
			type : 'post',
			url : '${pageContext.request.contextPath }/jy/selectDaysheduDetail2.do',
			data : {dayshedunum:dayshedunum},
			dataType : 'JSON',
			success : function(data) {
				if (data == 1) {
					//有数据往下进行，添加数据
					//如果有详情直接添加。
					
					$.ajax({ 
			    		type: "post",  
				        url: "${pageContext.request.contextPath }/jy/createDayshedu.do",  
				        data: {dayshedunum:dayshedunum,carroom:carroom,equipment:equipment,clazz:clazz,datatime:datatime,plannum:plannum,remark3:remark3},  
				        success: function (data) {
				        	if(data == 1){
				        		$('#submitBtn1').attr('disabled',true);
								 toastr.success("保存成功");   
								setTimeout(function(){  //使用  setTimeout（）方法设定定时3000毫秒
									//跳转到列表页面
									window.location.href="${pageContext.request.contextPath }/pages/jyy/dayshedu3.jsp";
								},2000);
				        	}else if(data == 2) {
				        		 toastr.warning("此排产单已存在");   
									setTimeout(function(){  //使用  setTimeout（）方法设定定时3000毫秒
										//跳转到列表页面
										window.location.href="${pageContext.request.contextPath }/pages/jyy/dayshedu3.jsp";
									},2000);
				        	}else if(data == 3) {
				        		 toastr.warning("同一天，同一车间，同一设备，同一班组已排产");   
									/* setTimeout(function(){  //使用  setTimeout（）方法设定定时3000毫秒
										//跳转到列表页面
										window.location.href="${pageContext.request.contextPath }/pages/jyy/dayshedu3.jsp";
									},2000); */
				        	}else {
				        		 toastr.warning("保存失败");   
									setTimeout(function(){  //使用  setTimeout（）方法设定定时3000毫秒
										//跳转到列表页面
										window.location.href="${pageContext.request.contextPath }/pages/jyy/dayshedu3.jsp";
									},2000);
				        	}
						}
				    });
					
				}else {
					//没有，提示请填写开始时间
					toastr.warning("数据不完整或数据错误"); 
					return;
				}
			}
    	});
    });
    
    //生成排产单号
    var s = "<%=s %>";
    var jhdh= "pc"+s;
    $("#pc").val(jhdh); 
});

var TableInit = function () {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $('#tb_departments').bootstrapTable({
            method: 'post',                      //请求方式（*）
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber:1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
            clickToSelect: true,                //是否启用点击选中行
            height: 500,                       //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
            uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
            detailView: false,                   //是否显示父子表
            columns: [{
                checkbox: true
            },{
                field: 'cartype',
                title: '车种'
            },{
                field: 'pnum',
                title: '品编'
            },{
                field: 'pname',
                title: '品名'
            },{
            	field: 'cycle',
                title: '周期'
            },{
            	field: 'remark8',
                title: '产品模数'
            },{
            	field: 'remark6',
                title: '待排产量'
            } ,{
                field: 'plannum',
                title: '排产量',
                 editable: {
                    type: 'text',
                    title: '排产量',
                    validate: function (v) {
                        if (!v) return '排产量不能为空';
                        if (isNaN(v)) return '必须是数字';
                        var remark7 = parseInt(v);
                        if (remark7 <= 0) return '必须是正整数';
                    }
                }  
            }/* ,{
            	field: 'truenum',
                title: '实际数量'
            } */,{
            	field: 'stattime',
                title: '开始时间',
                editable: {
                    type: 'datetime',
                    placement: 'left',
                    title: '请选择日期:',
                } 
            },{
            	field: 'endtime',
                title: '结束时间'
            },{
            	field: 'remark4',
                title: '计划完工日期'
            },{
            	field: 'state',
                title: '状态'
            }/* ,{
            	field: 'stopstate',
                title: '作业关闭'
            } */ ],
            
            onEditableSave : function(field, row, oldValue, $el) {
            	
            	var r6 = parseInt(row.remark6); 
            	var r7 = parseInt(row.plannum); 
            	if(r7 > r6 ) {
            		toastr.warning("排产量过大"); 
            		return;
            	}
            	//获取排产单号
            	var dayshedunum=$("#pc").val();
    			$('#tb_departments').bootstrapTable('resetView');
    			$.ajax({
    				type : 'post',
    				url : '${pageContext.request.contextPath }/jy/createDaysheduDetail.do',
    				data : {remark:row.remark,plannum:row.plannum,stattime:row.stattime,remark1:dayshedunum,remark4:row.remark4,cycle:row.cycle,remark5:row.remark5,remark6:row.remark6,remark8:row.remark8},//行内修改后的数据
    				dataType : 'JSON',
    				success : function(data) {
    					if (data == 1) {
    						var ids = $("#pdids").val();
    						 $('#tb_departments').bootstrapTable(  
    					                "refresh",  
    					                {  
    					              	  url:'${pageContext.request.contextPath }/jy/selectPlanDetailByids.do?ids='+ids
    					                }  
    					       	 ); 
    					}
    				}
    			});
    		}
        });
        
        $('#tb_departments1').bootstrapTable({
        	url:'${pageContext.request.contextPath }/jy/selectPlanCanShedu.do',
            method: 'post',                      //请求方式（*）
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
           /*  pagination: true, */                   //是否显示分页（*）
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber:1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
            clickToSelect: true,                //是否启用点击选中行
            height: 300,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
            uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
            detailView: false,                   //是否显示父子表
            columns: [{
                checkbox: true
            }, {
                field: 'plannum',
                title: '计划单号'
            }, {
                field: 'remark',
                title: '生产计划日期'
            }],
            
            onCheck: function (row) {
            	
                //单行最前面的checkbox被选中
                var a= $('#tb_departments1').bootstrapTable('getSelections'); 
                //获取选中行的计划单号。根据计划单号查询计划单中的详情，并显示到下方表格中
                
                $('#tb_departments2').bootstrapTable(  
                      "refresh",  
                      {  
                    	  url:'${pageContext.request.contextPath }/jy/selectPlanDetailByPlannum2.do?plannum='+a[0].plannum
                      }  
               	 ); 
            },
        });
        $('#tb_departments2').bootstrapTable({
            method: 'post',                      //请求方式（*）
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber:1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
            clickToSelect: true,                //是否启用点击选中行
            height: 300,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
            uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
            detailView: false,                   //是否显示父子表
            columns: [{
                checkbox: true
            }, {
                field: 'cartype',
                title: '车种'
            }, {
                field: 'pnum',
                title: '品编'
            }, {
                field: 'pname',
                title: '品名'
            }, {
            	field: 'remartk2',
                title: '周期'
            } ,{
            	field: 'remartk8',
                title: '产品模数'
            },{
                field: 'remartk1',
                title: '计划量'
            },{
                field: 'remartk11',
                title: '未排产生产计划量'
            }/* ,{
            	field: 'nnum',
                title: '实际数量'
            } */,{
            	field: 'pwdate',
                title: '计划完工日期'
            },{
            	field: 'wstape',
                title: '状态'
            }]
        });
        
    };

    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            limit: params.limit,   //页面大小
            offset: params.offset //页码
        };
        return temp;
    };
    return oTableInit;
};


var ButtonInit = function () {
    var oInit = new Object();
    var postdata = {};

    oInit.Init = function () {
        //初始化页面上面的按钮事件
    };

    return oInit;
};

//下拉框change事件  选择生产计划单后，根据生产计划单单号查询生产计划单详情列表
function fun2() {
	//获取选中的生产计划单号
	var plannum=$("#plan").val();
	if(plannum == "" || plannum == null  || plannum == undefined) {
		return;
	}
	 $('#tb_departments2').bootstrapTable(  
             "refresh",  
             {  
           	  url:'${pageContext.request.contextPath }/jy/selectPlanDetailByPlannum2.do?plannum='+plannum
             }  
    	 ); 
	
	$("#myModal").modal("show");  
}

//查询设备信息，根据车间信息
function selectEquipment() {
	var cid = $("#carroom").val();
	$("#equipment").text("");
    $.ajax({
        url:'${pageContext.request.contextPath }/jy/selectEquipment.do',
        type:"POST",
        dataType:'json',
        data:{cid:cid},
        success:function (result) {
            for (var i = 0; i < result.length; i++) {
                $("#equipment").append("<option value="+result[i].eid+">"+result[i].name+"</option>");
            }
        }
    });
}

/* 弹出销售计划单列表的模态框 */
function fun1() {
	 $("#myModal").modal("show");  
}
</script>
</head>
<body>
	<div class="row">
		<div class="col-lg-2">
		  <label for="phone" class="control-label">排产单号:</label>
		  <input type="text" class="form-control" id="pc" name="dayshedunum" readonly="readonly">
		</div>
		<div class="col-lg-2">
			<label class="control-label">车间:</label>
                 <select class="form-control"  name="carroom" id="carroom" onchange="selectEquipment()">
                	<option value="">--请选择--</option>
              	</select>
		</div>
		<div class="col-lg-1">
		  <label for="phone" class="control-label">设备:</label>
		  	<select class="form-control" name="equipment" id="equipment">
		      <option  value="">请选择</option>
                   <%-- <c:forEach var="t" items="${list3}">
						<option value="${t.name}">${t.name}</option>
					</c:forEach> --%>
		    </select>
		</div>
		<div class="col-lg-1">
		  <label for="phone" class="control-label">班组:</label>
		  	<select class="selectpicker show-tick form-control" name="clazz" id="clazz">
		      <option  value="">--请选择--</option>
		      <option value="1">白班</option>
		      <option value="2">晚班</option>
		    </select>
		</div>
		<div class="col-lg-2">
		  <label for="phone" class="control-label">时间:</label>
		  <input class="form_datetime form-control" type="text" id="datatime" name="datatime" readonly >
		</div>
		<div class="col-lg-2">
		  <label for="phone" class="control-label">生产计划单:</label>
		  <input type="hidden" id="pdids" name="remark3">
		  	<%-- <select class="selectpicker show-tick form-control" onchange="fun2()" name="plannum" id="plan">
		  		<option  value="">--请选择--</option>
                  <c:forEach var="p" items="${list2}">
					<option value="${p.plannum}">${p.plannum}</option>
				</c:forEach>
		    </select> --%>
		    <input type="text" class="form-control" onfocus="fun1()" name="plannum" id="plan" readonly="readonly">
		</div>
	</div>
	<br/><br/>
    	<table id="tb_departments" ></table>
	     <div class="text-right">
	         <span id="returnMessage" class="glyphicon"> </span>
	         <button id="returnBtn" type="button" class="btn btn-default right">取消</button>
	         <button id="submitBtn1" type="button" class="btn btn-primary">保存</button>
	     </div>
	
	 <div class="modal fade " id="myModal" role="dialog" aria-labelledby="myModal">
	    <div class="modal-dialog" role="document" style="margin-left: -300px;width: 1000px">
	        <div class="modal-content">
	
	            <div class="modal-header">
	                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
	                <h4 class="modal-title" id="exampleModalLabel">选择计划单详情</h4>
	            </div>
	
	            <div class="modal-body">
	               <form id="updateform">
	                	<table id="tb_departments1"></table>
	                	<table id="tb_departments2"></table>
	                	 <div class="text-right">
					        <span id="returnMessage" class="glyphicon"> </span>
					        <button type="button" class="btn btn-default right" data-dismiss="modal">取消</button>
					        <button id="submitBtn" type="button" class="btn btn-primary" data-dismiss="modal">提交</button>
					    </div>
	                </form>
	            </div>
	        </div>
	    </div>
	</div>
</body>
</html>